home *** CD-ROM | disk | FTP | other *** search
/ Amiga Format CD 43 / Amiga Format CD43 (1999)(Future Publishing)(GB)(Track 1 of 2)[!][issue 1999-09].iso / -serious- / programming / other / hunk / hoppers / general020.hop < prev    next >
Text File  |  1999-06-14  |  3KB  |  141 lines

  1. ;*************************************************************************
  2. ;** General Optimizer PC Absolute to Relative                           **
  3. ;** Contributor: Thomas Richter (thor)                  Nov  1st  1997  **
  4. ;** Modify all absolute addressing to PC relative if possible           **
  5. ;** This is especially for the MC68020. More optimisations are possible **
  6. ;** however.                                **
  7. ;** Version 1.01, Nov 23rd:    Replaced NOP by LEA (a6),A6 to avoid    **
  8. ;**                pipeline stalls of the '060        **
  9. ;*************************************************************************
  10.  
  11.  
  12.  
  13. ;*************************************************************************
  14. ;
  15. ; MOVE.L
  16. ;
  17. #match
  18. #code
  19. %0010XXXXXX111001  =# SourceEA          ;MOVE.L ABS,rx
  20. RRRR RRRR          =@ EA
  21. ;
  22. ;
  23. #replace
  24. %0010XXXXXX111010  =# SourceEA          ;MOVE.L d(PC),rx
  25. YYYY               =@ EA
  26. 4DD6
  27. #end
  28.  
  29.  
  30. ;*************************************************************************
  31. ;
  32. ; MOVE.W
  33. ;
  34. #match
  35. #code
  36. %0011XXXXXX111001  =# SourceEA          ;MOVE.W ABS,rx
  37. RRRR RRRR          =@ EA
  38. ;
  39. ;
  40. #replace
  41. %0011XXXXXX111010  =# SourceEA          ;MOVE.W d(PC),rx
  42. YYYY               =@ EA
  43. 4DD6
  44. #end
  45.  
  46.  
  47. ;*************************************************************************
  48. ;
  49. ; MOVE.B
  50. ;
  51. #match
  52. #code
  53. %0001XXXXXX111001  =# SourceEA          ;MOVE.L ABS,rx
  54. RRRR RRRR          =@ EA
  55. ;
  56. ;
  57. #replace
  58. %0001XXXXXX111010  =# SourceEA          ;MOVE.L d(PC),rx
  59. YYYY               =@ EA
  60. 4DD6
  61. #end
  62.  
  63.  
  64. ;*************************************************************************
  65. ;
  66. ; MOVE.L #???,Ax        ->      LEA
  67. ;
  68. #match
  69. #code
  70. %0010XXX001111100  =# SourceEA          ;MOVE.L #ABS,Ax
  71. RRRR RRRR          =@ EA
  72. ;
  73. ;
  74. #replace
  75. %0100XXX111111010  =# SourceEA          ;LEA d(PC),Ax
  76. YYYY               =@ EA
  77. 4DD6
  78. #end
  79.  
  80. ;*************************************************************************
  81. ;
  82. ; JMP Abs
  83. ;
  84. #match
  85. #code
  86. 4EF9                                    ; JMP Abs.L
  87. RRRR RRRR         =@ EA
  88. ;
  89. ;
  90. #replace
  91. 60FF                                    ; BRA.L d
  92. YYYY YYYY         =@ EA
  93. #end
  94.  
  95. ;*************************************************************************
  96. ;
  97. ; JSR Abs
  98. ;
  99. #match
  100. #code
  101. 4EB9                                    ; JSR Abs.L
  102. RRRR RRRR         =@ EA
  103. ;
  104. ;
  105. #replace
  106. 61FF                                    ; BSR.L d(PC)
  107. YYYY YYYY         =@ EA
  108. #end
  109.  
  110. ;*************************************************************************
  111. ;
  112. ; PEA Abs
  113. ;
  114. #match
  115. #code
  116. 4879                                    ; PEA Abs.L
  117. RRRR RRRR         =@ EA
  118. ;
  119. ;
  120. #replace
  121. 487A                                    ; PEA d(PC)
  122. YYYY              =@ EA
  123. 4DD6
  124. #end
  125.  
  126. ;*************************************************************************
  127. ;
  128. ; LEA Abs
  129. ;
  130. #match
  131. #code
  132. %0100XXX111111001 =# SourceEA           ; LEA Abs.l,Ax
  133. RRRR RRRR         =@ EA
  134. ;
  135. ;
  136. #replace
  137. %0100XXX111111010 =# SourceEA           ; LEA d(PC),Ax
  138. YYYY              =@ EA
  139. 4DD6
  140. #end
  141.